/**
 * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springblade.modules.monitor.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import org.springblade.modules.monitor.dto.DiskDTO;

import java.util.List;

/**
 * 服务器详情
 *
 * @author Blade
 * @since 2020-05-18
 */
@Data
@ApiModel(value = "ServerDetailInfo", description = "ServerDetailInfo对象")
public class ServerDetailInfo {
	private static final long serialVersionUID = 1L;

	/**
	 * 主机基础信息
	 */
	@ApiModelProperty(value = "名称")
	private String host;

	@ApiModelProperty(value = "管理ip")
	private String ip;

	@ApiModelProperty(value = "管理端口")
	private String port;

	@ApiModelProperty(value = "远程ip; 不进行展示")
	private String remoteIp;

	@ApiModelProperty(value = "MAC地址; 不进行展示")
	private String macAddr;

	@ApiModelProperty(value = "子网掩码; 不进行展示")
	private String subnetMask;

	@ApiModelProperty(value = "管理状态 0：监控中；1：未监控")
	private Integer manageStatus;

	@ApiModelProperty(value = "管理方式(监控方式) 1:Agent  2:SNMP")
	private Integer manageType;

	@ApiModelProperty(value = "关键性; 不进行展示")
	private String keyFlag;

	@ApiModelProperty(value = "厂商; 不进行展示")
	private String factory;

	@ApiModelProperty(value = "型号; 不进行展示")
	private String kind;

	@ApiModelProperty(value = "操作系统")
	private String operatingSystem ;

	@ApiModelProperty(value = "系统oid; 不进行展示")
	private String systemOid ;

	@ApiModelProperty(value = "描述信息")
	private String systemDesc ;

	/**
	 *获取CPU 信息
	 */
	@ApiModelProperty(value = "CPU使用率，百分比")
	private Double cpuUsage ;

	@ApiModelProperty(value = "CPU使用单位,默认为百分比")
	private String  cpuUnit = "%";

	@ApiModelProperty(value = "CPU监控项（查询一段时间内CPU使用情况时使用）")
	private Long cpuItem ;

	@ApiModelProperty(value = "CPU核数")
	private Integer coreNum ;

	/**
	 *获取Memory 信息
	 */
	@ApiModelProperty(value = "内存总量")
	private Double memSize ;

	@ApiModelProperty(value = "内存单位")
	private String memUnit ;

	@ApiModelProperty(value = "内存总量（未经转换的原始值）")
	private Long initialMemSize ;

	@ApiModelProperty(value = "内存使用率,百分比")
	private Double memUsage ;

	@ApiModelProperty(value = "内存监控项（查询一段时间内内存使用情况时使用）")
	private Long memItem ;

	/**
	 * 获取磁盘信息 信息
	 */
	@ApiModelProperty(value = "磁盘信息")
	List<DiskDTO> disks;

}
